package com.sz.admin.system.service;

import com.mybatisflex.core.service.IService;
import com.sz.admin.system.pojo.dto.filemonitor.SysFileMonitorCreateDTO;
import com.sz.admin.system.pojo.dto.filemonitor.SysFileMonitorListDTO;
import com.sz.admin.system.pojo.dto.filemonitor.SysFileMonitorUpdateDTO;
import com.sz.admin.system.pojo.po.SysFileMonitor;
import com.sz.admin.system.pojo.vo.filemonitor.SysFileMonitorVO;
import com.sz.core.common.entity.PageResult;
import com.sz.core.common.entity.SelectIdsDTO;

import java.util.List;

/**
 * 文件监控服务接口
 *
 * @author sz-admin
 * @since 2025-01-13
 */
public interface SysFileMonitorService extends IService<SysFileMonitor> {

    /**
     * 创建文件监控
     */
    void create(SysFileMonitorCreateDTO dto);

    /**
     * 更新文件监控
     */
    void update(SysFileMonitorUpdateDTO dto);

    /**
     * 分页查询文件监控
     */
    PageResult<SysFileMonitorVO> page(SysFileMonitorListDTO dto);

    /**
     * 查询文件监控列表
     */
    List<SysFileMonitorVO> list(SysFileMonitorListDTO dto);

    /**
     * 删除文件监控
     */
    void remove(SelectIdsDTO dto);

    /**
     * 获取文件监控详情
     */
    SysFileMonitorVO detail(Object id);

    /**
     * 启用监控
     */
    void enableMonitor(Long id);

    /**
     * 停用监控
     */
    void disableMonitor(Long id);

    /**
     * 获取所有启用的监控配置
     */
    List<SysFileMonitor> getEnabledMonitors();

}